package pers.qianyu.module.image.service;

import pers.qianyu.module.core.comm.Pagination;
import pers.qianyu.module.core.domain.image.dataobj.LabelCountDO;
import pers.qianyu.module.core.domain.image.dto.LabelDTO;
import pers.qianyu.module.core.domain.image.query.LabelQuery;
import pers.qianyu.module.core.domain.image.vo.ImageVO;
import pers.qianyu.module.core.domain.image.vo.LabelVO;

import java.util.Set;

/**
 * @author mizzle rain
 * @date 2021-04-07 11:54
 */
public interface LabelService {
    /**
     * 一次性查找出所有的标签
     *
     * @return
     */
    Set<LabelCountDO> getAllLabels();

    void insert(LabelDTO labelDTO);

    /**
     * 根据标签ID删除对应标签
     *
     * @param id 标签 ID
     */
    void deleteById(Long id);

    /**
     * 根据标签查找对应图片集合
     *
     * @param labelQuery 查询条件（含标签名）
     * @return 图片分页集合
     */
    Pagination<ImageVO> findImagesByLabel(LabelQuery labelQuery);

    /**
     * 分页查询标签信息
     *
     * @param labelQuery 查询条件
     * @return 分页结果
     */
    Pagination<LabelVO> pageQuery(LabelQuery labelQuery);
}
